Businesses have employed and continue to employ computer systems to conduct economic transactions. These computer systems typically involve a client computer (client) and a server computer (server). The server generally fulfills user requests from the client. When the client and the server conduct a business transaction, such as an electronic shopping session, the client or the server typically stores information about each communication session, generally referred to as “session information”. For example, session information may include the items that a user places in a “virtual” shopping cart for purchase, search queries by the user (e.g., a search query for a particular product), and the like.
Typically, the session information should be available for use, such as for modification and/or analysis. For example, if a user peruses and purchases products sold on a web page (i.e., electronic shopping), the server often requests information from the user about the user, such as the user's address and social security number. This information, which is also a portion of the session information, is required for the correct processing and delivering of the user's order.
If the server stores the session information in main memory (e.g., random-access memory) and a server failure occurs, all session information is often erased and typically irretrievable. The client may subsequently have to repeat certain transmissions to rebuild the session information associated with a connection; the performance of the server and/or client often decreases because of such a process. Clients may abandon their transaction because of lost session information, resulting in a loss of sales for the particular business that experienced the server failure.
If the server stores the session information on a persistent mass storage (e.g., disk), then the session information survives a server failure. However, because the persistent mass storage is a mechanical device, the server generally accesses the persistent mass storage less efficiently than the server accesses the computer's memory. Thus, storage of session information on persistent mass storage results in reduced performance that is perceived by the client as a slower response time. This is generally unacceptable.
If the client stores the session information in memory located at the client, a server failure does not erase the session information. However, the session information often contains private information (such as the user's social security number) and the client therefore frequently encrypts transmissions of session information to the server. This encryption increases the complexity of the transaction and also increases the cost of the software needed to implement the encryption and decryption of the data.
Thus, there remains a need to enable the session information to be accessible to the server after a server failure while not decreasing the performance of the server.